<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="Heading ThankYou Label ConnectionString FieldQuery Text"/>
	<xsl:template match="/">
	<Form>
		<Heading>
		<xsl:value-of select="//Heading"/>
		</Heading>
		<xsl:apply-templates select="//Controls"/>
		<ThankYou>
		<xsl:value-of select="//ThankYou" disable-output-escaping="yes"/>
		</ThankYou>
	</Form>
	</xsl:template>
	
	<xsl:template match="Controls">
		<Controls>
		<xsl:apply-templates select="Control">
			<xsl:sort data-type="number" select="@TableRow"/>
		</xsl:apply-templates>
		</Controls>
	</xsl:template>

	
	<xsl:template match="Control">
		<Control>
			<xsl:apply-templates select="@*"/>
			<xsl:apply-templates select="Label"/>
			<xsl:apply-templates select="ConnectionString"/>
			<xsl:apply-templates select="FieldQuery"/>
			<xsl:apply-templates select="Text"/>
			<xsl:apply-templates select="Validators"/>
			<xsl:apply-templates select="ListItems"/>
		</Control>
	</xsl:template>

    <xsl:template match="Label">
		<xsl:if test=". !=''">
		<Label>
			<xsl:value-of select="."/>
		</Label>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="ConnectionString">
		<xsl:if test=". !=''">
		<ConnectionString>
			<xsl:value-of select="."/>
		</ConnectionString>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="FieldQuery">
		<xsl:if test=". !=''">
		<FieldQuery>
			<xsl:value-of select="."/>
		</FieldQuery>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="Text">
		<xsl:if test=". !=''">
		<Text>
			<xsl:value-of select="."/>
		</Text>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="Validators">
		<Validators>
		<xsl:apply-templates select="Control"/>
		</Validators>
	</xsl:template>
	
	<xsl:template match="ListItems">
		<ListItems>
		<xsl:apply-templates select="ListItem"/>
		</ListItems>
	</xsl:template>

	<xsl:template match="ListItem">
		<ListItem>
			<xsl:apply-templates select="@*"/>
		</ListItem>
	</xsl:template>
	
	<xsl:template match="@*">
		<xsl:copy-of select="."/>
	</xsl:template>
	
</xsl:stylesheet>
